10.
減算合成とフィルターの使用
減算合成の基本的な考え方はコーヒーをいれることに似ています。つまり、最終的に必要ない成分をフィルターを通じて取り除くということです。
////////////////////////////////////////////////////////////////////////////////////////////////////
次の様に.dumpClassSubtreeメッセージをFilterクラスに送ることで、SuperCollider 3のほとんど全てのフィルターのリストが得られます。
Filter.dumpClassSubtree;
これがそのリストです。
Filter
[
DetectSilence
Formlet
Ringz
SOS
FOS
Slew
Median
LPZ2
[ BRZ2 BPZ2 HPZ2 ]
Slope
LPZ1
[ HPZ1 ]
MidEQ
BPF
[ BRF ]
LPF
[ HPF ]
RLPF
[ RHPF ]
LeakDC
Lag
[ Ramp Lag3 Lag2 ]
Decay2
Decay
Integrator
TwoPole
[ APF TwoZero ]
OnePole
[ OneZero ]
Resonz
]
SuperColliderのヘルプ・システムでHelp/UGens/Filtersを調べることでもフィルターのヘルプ・ファイルをみることができます。ヘルプ・ファイルの全てにはそれぞれのフィルターがどのように動作するのかを示す素晴らしい例があります。
////////////////////////////////////////////////////////////////////////////////////////////////////
ヒント:次の様にObjectクラスに.dumpClassSubtreeメッセージを送ることで
Object.dumpClassSubtree;
SuperColliderのそれぞれの単独のクラスのリストが表示されます。
////////////////////////////////////////////////////////////////////////////////////////////////////
LPF(ローパス・フィルター)を使って入力ソースから高い周波数成分を減算します。
(
SynthDef("subtractive", {
Out.ar(
0,
LPF.ar(
Pulse.ar(440, 0.5, 0.1), // フィルターをかけるソース
Line.kr(8000, 660, 6) // フィルターの周波数をLineでコントロールする
)
)
}).load(s);
)
Synth("subtractive")
////////////////////////////////////////////////////////////////////////////////////////////////////
RLFP(レゾナント・ローパス・フィルター)は、高い周波数成分を取り除き、フィルターの(カットオフ・ポイントの)周波数を強調するためによく使います。
(
SynthDef("passLowFreqs2", {
Out.ar(
0,
RLPF.ar(
Saw.ar([220, 221] + LFNoise0.kr(1, 100, 200), 0.2),
[LFNoise0.kr(4, 600, 2400), LFNoise0.kr(3, 600, 2400)],
0.1
)
)
}).load(s);
)
Synth("passLowFreqs2")
////////////////////////////////////////////////////////////////////////////////////////////////////
Rezonzはとても、とても、とても強力なフィルターです。特定の周波数帯域を強調する時に使います。
カットオフが非常にシャープなためにノイズをピッチに変えてしまいます。
(
SynthDef("noiseToPitch", { arg out = 0, mul = 1;
Out.ar(
out,
Resonz.ar(
WhiteNoise.ar(mul),
LFNoise0.kr(4, 110, 660),
[0.005, 0.005]
)
)
}).load(s);
)
(
// 左右のチャンネルをアクティブ化する
Synth("noiseToPitch", [\out, 0\mul, 1]);
Synth("noiseToPitch", [\out, 1, \mul, 1]);
)
////////////////////////////////////////////////////////////////////////////////////////////////////